﻿
// НАСТРОЙКИ СНИППЕТА

// По умолчанию все значения для сниппета берутся из переменных
// проекта с префиксами "find_element_", "set_value_", "get_value_", "rise_"

// Если заполнить поля ниже - значения переменных будут игнорироваться

//CSS-селектор
string selector = "";
//Номер совпадения
int number = 0;

//Название атрибута, значение которого нужно получить
string getAttrName = "";


#region Капот

//Получаем значения из переменных
if (string.IsNullOrWhiteSpace(selector) && project.Variables.Keys.Contains("find_element_selector"))
{
	selector = project.Variables["find_element_selector"].Value;
}
if (project.Variables.Keys.Contains("find_element_number"))
{
	int.TryParse(project.Variables["find_element_number"].Value, out number);
}

if (string.IsNullOrWhiteSpace(getAttrName) && project.Variables.Keys.Contains("get_value_attr_name"))
{
	getAttrName = project.Variables["get_value_attr_name"].Value;
}

//Ищем элемент
var tab = instance.ActiveTab;
var el = tab.QuerySelector(selector, number);
if (el.IsNull || el.IsVoid)
{
	throw new Exception("Элемент по CSS-селектору '"+selector+"' не найден, действие не выполнено!");
}
//Получаем значение атрибута
string value = el.GetAttribute(getAttrName);
if (project.Variables.Keys.Contains("get_value_result"))
{
	project.Variables["get_value_result"].Value = value;
}
else
{
	return value;
}

#endregion

